package com.eastfair.projectcore.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.time.LocalDate;
import java.time.LocalDateTime;
    import lombok.Data;
    import lombok.Builder;
    import lombok.EqualsAndHashCode;
    import lombok.NoArgsConstructor;
    import lombok.AllArgsConstructor;
    import com.fasterxml.jackson.annotation.JsonInclude;
    import lombok.ToString;
    import lombok.experimental.Accessors;
    import com.eastfair.annotation.annotation.vo.VoInfo;
    import com.eastfair.annotation.model.BaseVoGroupClass;
import java.io.Serializable;
import com.eastfair.vo.BaseVO;

/**
* <p>
    * 实体类
    * DB WorkerID Assigner for UID Generator
    * </p>
*
* @author ligang
* @since 2023-09-08
*/
    @Data
    @ApiModel(value = "WorkerNodeVO", description = "DB WorkerID Assigner for UID Generator")
public class WorkerNodeVO extends BaseVO implements Serializable {

private static final long serialVersionUID = 1L;

        @ApiModelProperty(value = "主键")
        @JsonInclude(JsonInclude.Include.NON_NULL)
        @VoInfo(groups = {BaseVoGroupClass.all.class})
        private Long id;

            /**
            * host name
            */
            @ApiModelProperty(value = "host name")
            @JsonInclude(JsonInclude.Include.NON_NULL)
                @NotEmpty(message = "请填写host name")
                @Size(max = 64, message = "host name长度不能超过64")
        private String hostName;
            /**
            * port
            */
            @ApiModelProperty(value = "port")
            @JsonInclude(JsonInclude.Include.NON_NULL)
                @NotEmpty(message = "请填写port")
                @Size(max = 64, message = "port长度不能超过64")
        private String port;
            /**
            * node type: ACTUAL or CONTAINER
            */
            @ApiModelProperty(value = "node type: ACTUAL or CONTAINER")
            @JsonInclude(JsonInclude.Include.NON_NULL)
                @NotNull(message = "请填写node type: ACTUAL or CONTAINER")
        private Integer type;
            /**
            * launch date
            */
            @ApiModelProperty(value = "launch date")
            @JsonInclude(JsonInclude.Include.NON_NULL)
                @NotNull(message = "请填写launch date")
        private LocalDate launchDate;
            /**
            * modified time
            */
            @ApiModelProperty(value = "modified time")
            @JsonInclude(JsonInclude.Include.NON_NULL)
                @NotNull(message = "请填写modified time")
        private LocalDateTime modified;
            /**
            * created time
            */
            @ApiModelProperty(value = "created time")
            @JsonInclude(JsonInclude.Include.NON_NULL)
                @NotNull(message = "请填写created time")
        private LocalDateTime created;
}
